001 /*
002 * Copyright 2004-2005 Stephen J. McConnell.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
013 * implied.
014 *
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018
019 package net.dpml.transit.tools;
020
021 import java.net.URL;
022
023 import net.dpml.transit.monitor.Adapter;
024 import net.dpml.util.ExceptionHelper;
025 import net.dpml.util.Logger;
026
027 import org.apache.tools.ant.Task;
028 import org.apache.tools.ant.Project;
029
030 /**
031 * A ant montor for download messages.
032 *
033 * @author <a href="http://www.dpml.net">Digital Product Meta Library</a>
034 * @version 1.0.2
035 */
036 public class AntAdapter implements Adapter
037 {
038 /**
039 * The ant task that this adapter is assigned to.
040 */
041 private Task m_task;
042
043 /**
044 * Creation of a new ant logging adapter.
045 * @param task the task establishing the adapter
046 */
047 public AntAdapter( Task task )
048 {
049 m_task = task;
050 }
051
052 /**
053 * Return TRUE is trace level logging is enabled.
054 * @return the enabled state of trace logging
055 */
056 public boolean isTraceEnabled()
057 {
058 return true;
059 }
060
061 /**
062 * Return TRUE is debug level logging is enabled.
063 * @return the enabled state of debug logging
064 */
065 public boolean isDebugEnabled()
066 {
067 return true;
068 }
069
070 /**
071 * Return TRUE is info level logging is enabled.
072 * @return the enabled state of info logging
073 */
074 public boolean isInfoEnabled()
075 {
076 return true;
077 }
078
079 /**
080 * Return TRUE is warn level logging is enabled.
081 * @return the enabled state of warn logging
082 */
083 public boolean isWarnEnabled()
084 {
085 return true;
086 }
087
088 /**
089 * Return TRUE is error level logging is enabled.
090 * @return the enabled state of error logging
091 */
092 public boolean isErrorEnabled()
093 {
094 return true;
095 }
096
097 /**
098 * Record a debug level message.
099 * @param message the debug message to record
100 */
101 public void debug( String message )
102 {
103 m_task.log( message, Project.MSG_VERBOSE );
104 }
105
106 /**
107 * Record a trace level message.
108 * @param message the trace message to record
109 */
110 public void trace( String message )
111 {
112 m_task.log( message, Project.MSG_VERBOSE );
113 }
114
115 /**
116 * Record a informative message.
117 * @param message the info message to record
118 */
119 public void info( String message )
120 {
121 m_task.log( message, Project.MSG_INFO );
122 }
123
124 /**
125 * Record a warning message.
126 * @param message the warning message to record
127 */
128 public void warn( String message )
129 {
130 m_task.log( message, Project.MSG_WARN );
131 }
132
133 /**
134 * Record a warning message.
135 * @param message the warning message to record
136 * @param cause the causal exception
137 */
138 public void warn( String message, Throwable cause )
139 {
140 m_task.log( message, Project.MSG_WARN );
141 if( null != cause )
142 {
143 final String error = ExceptionHelper.packException( message, cause, true );
144 m_task.log( error, Project.MSG_WARN );
145 }
146 }
147
148 /**
149 * Record a error level message.
150 * @param message the error message to record
151 */
152 public void error( String message )
153 {
154 error( message, null );
155 }
156
157 /**
158 * Record a error level message.
159 * @param message the error message to record
160 * @param e the error
161 */
162 public void error( String message, Throwable e )
163 {
164 m_task.log( message, Project.MSG_ERR );
165 if( null != e )
166 {
167 final String error = ExceptionHelper.packException( message, e, true );
168 m_task.log( error, Project.MSG_ERR );
169 }
170 }
171
172 /**
173 * Create a new subsidiary logging channel.
174 * @param category the channel name relative to this logging channel
175 * @return the new logging channel
176 */
177 public Logger getChildLogger( String category )
178 {
179 return this;
180 }
181
182 /**
183 * Hnadle download notification.
184 * @param resource the resource under attention
185 * @param total the estimated download size
186 * @param count the progress towards expected
187 */
188 public void notify( URL resource, int total, int count )
189 {
190 }
191 }
192